算法的时间效率

算法的时间效率

对算法概念部分的同一问题的另一种解法,代码如下:

# 如果 a+b+c=1000, 且a^2+b^2=c^2 (a, b, c为自然数), 如果求出所有a,b,c可能的组合
import time

start_time = time.time()

for a in range(0, 1001):
    for b in range(0, 1001):
        c = 1000 - a - b
        if a**2 + b**2 == c**2:
            print(f'a: {a}, b: {b}, c: {c}')

end_time = time.time()
cost_time = end_time - start_time
print(f'花费的时间为: {cost_time}')
a: 0, b: 500, c: 500
a: 200, b: 375, c: 425
a: 375, b: 200, c: 425
a: 500, b: 0, c: 500
花费的时间为: 0.3011956214904785

运行时间一定程度上反映算法的优劣,但仅靠运行时间,不一定客观准确,如何衡量?

假定执行算法每一个基本操作的时间是固定的一个时间单位,那么有多少个基本操作就代表会花费多少时间单位,由此可以忽略机器环境的影响而客观反映算法的时间效率

时间效率:代码执行总时间(T) = 操作步骤数量 * 操作步骤执行时间

T=(基本操作+子整体+大整体)*操作步骤执行时间

假定计算机执行算法每一个基本操作的时间是固定的一个时间单位

T=操作步骤总数=基本操作+子整体+大整体